package com.dz.risk.pojo.domain;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.dz.risk.pojo.QueryParams;
import com.dz.risk.pojo.model.FormulaModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigInteger;
import java.util.Date;

/**
 * 风险因子回溯表
 *
 * @author Doke
 * @date 2021/07/01 14:08:32
 */
@ApiModel(value = "风险因子回溯实体")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@Builder
@ExcelTarget("riskFactorBacktrackingList")
@TableName(value = "t_st_risk_factor_backtracking", autoResultMap = true)
public class RiskFactorBacktracking {
    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "id主键")
    private String id;

    /**
     * 风险因子编码
     */
    @ApiModelProperty(value = "风险因子编码")
    private BigInteger riskCode;

    /**
     * 风险因子
     */
    @Excel(name = "压力情景参数(股市跌债市跌)")
    @ApiModelProperty(value = "风险因子")
    private String riskContent;

    /**
     * 当前页
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "当前页")
    private Integer pageNum;

    /**
     * 分页长度
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "分页长度")
    private Integer pageSize;

    /**
     * 未来一个月回溯值
     */
    @Excel(name = "未来一个月回溯值")
    @ApiModelProperty(value = "未来一个月回溯值")
    private String inTheNextOneMonthsSevereBackValue;

    /**
     * 未来一个月阈值
     */
    @Excel(name = "未来一个月阈值")
    @ApiModelProperty(value = "未来一个月阈值")
    private String inTheNextOneMonthsSevereThresholdValue;

    /**
     * 未来两个月回溯值
     */
    @Excel(name = "未来两个月回溯值")
    @ApiModelProperty(value = "未来两个月回溯值")
    private String inTheNextTwoMonthsSevereBackValue;

    /**
     * 未来两个月阈值
     */
    @Excel(name = "未来两个月阈值")
    @ApiModelProperty(value = "未来两个月阈值")
    private String inTheNextTwoMonthsSevereThresholdValue;

    /**
     * 未来三个月回溯值
     */
    @Excel(name = "未来三个月重度回溯值")
    @ApiModelProperty(value = "未来三个月重度回溯值")
    private String inTheNextThreeMonthsSevereBackValue;

    /**
     * 未来三个月回溯值
     */
    @Excel(name = "未来三个月重度阈值")
    @ApiModelProperty(value = "未来三个月重度阈值")
    private String inTheNextThreeMonthsSevereThresholdValue;

    /**
     * 版本号(记录到年月日)
     */
    @ApiModelProperty(value = "版本号(记录到年月日)")
    private String version;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private String createdUser;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @com.fasterxml.jackson.annotation.JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createdTime;


    /**
     * 计算公式
     */
    @ApiModelProperty(value = "计算公式")
    @TableField(typeHandler = JacksonTypeHandler.class)
    private FormulaModel expression;

}